The present invention relates to the processing of messages exchanged between a client device and a server device via an intermediate device equipped with a cache.
Embodiments of the present invention have a general application in the processing of messages exchanged in a communication network, and more particularly the messages represented in markup language, for example messages represented according to SOAP (Simple Object Access Protocol).
It is known that, in order to reduce the traffic in a communication network, for example the Internet, intermediate devices are arranged forming caches on the communication network between the client devices and the server devices.
An intermediate device forming a cache acts invisibly by storing the requests from the client devices and the responses from the server devices.
Thus, when a client device makes a request for which the intermediate device forming a cache has already stored the associated response, the intermediate device forming a cache can reply directly to the client device without the request being transmitted to the server device.
This strategy doubly accelerates the response time for a client device, firstly because the intermediate device forming a cache is generally situated closer to it (in terms of network distance) and secondly because its request has not had to be processed by a potentially heavily loaded server device (the machine managing the intermediate device forming a cache can more easily be sized to satisfy demand than any server device).
In practice, some responses are valid only for a given period. For example, a stock exchange quotation will be valid for a few minutes, a weather map for a few hours, the first page of a monthly review will be valid for one month and a leading article will be valid indefinitely.
In such examples, an intermediate device forming a cache must not keep a response which is no longer valid since it would then supply an invalid response to the client device different from that which the client device would have obtained from the server device.
Recently, more and more dynamic contents has appeared on Internet sites.
For example, dynamic contents consist of responses from Internet services, in particular messages with tags, such as SOAP messages. Such messages with tags comprise blocks of information distributed between a first group of blocks forming a header of the message and a second group of blocks corresponding to the body of the message.
Dynamic content usually has a very short or indeterminate life and cannot be stored by an intermediate device forming a cache.
The architecture of the intermediate devices forming caches can therefore no longer be applied to sites supplying dynamic contents, which has a negative effect on the reactivity of the site for a user.
Technical solutions developed to manage dynamic contents of this type are already known.
For example, the document U.S. Pat. No. 6,408,360 describes a cache mechanism for a dynamic server device. This cache mechanism is designed to be integrated in a server device supplying dynamic content. When the server device receives a request for a page containing a dynamic content, the server device calls the application suitable for managing this content. In addition to the content, the called application generates information indicating the period of validity of this content. Thus the server device can store the response from the application and reply to other similar requests using the stored content without having to make a new call on the application, until the period of validity of the content expires.
A cache mechanism of this type improves the response time of the server device by avoiding unnecessary calculations. However, it is integrated in a server device rather than in an intermediate device forming a cache independent of the server devices. As a result a mechanism of this type does not make it possible to reduce data transfers on the Internet and consequently improve the response time for a user.
For its part, the document U.S. Pat. No. 6,351,767 describes a mechanism for determining whether a page constructed from several dynamic parts can be stored by a cache mechanism. This determination is made by analyzing the period of validity of each of the dynamic parts. However, here also, this document applies only to caches integrated in server devices constructing responses from several parts.